#include <malloc.h> требуется только для объявления функции char *alloca(size); unsigned size; захваченные байты из стека
Описание.
Процедура alloca захватывает байты size из стека программы. Захваченное пространство автоматически освобождается при выходе из функции, вызвавшей alloca.
Возвращаемое значение.
Процедура alloca возвращает указатель char на захваченное пространство.
В памяти, на которую указывает возвращаемое значение, гарантировано выравнивание для хранения любого типа объекта. Чтобы получить указатель на тип, отличный от char, используется преобразователь типа возвращаемого значения. Возвращается значение NULL, если пространство не было захвачено.
Предупреждение.
Значение указателя, возвращаемого процедурой alloca, не может быть аргументом для free. Так как alloca обрабатывает стек, она должна использоваться только в простых операторах выделения и не должна использоваться в выражениях-аргументах функций.
Пример:
#include <malloc.h>
int *intarray;
/* захватывает память в стеке для 10 целых */
intarray=(int*)alloca(10*sizeof(int));